# -*- coding: utf-8 -*-
from __future__ import print_function, division
import numpy as np

N = 18  # number of buses
tau = 12  # average minutes between arrivals

rand = np.random.RandomState(42)  # universal random seed
bus_arrival_times = N * tau * np.sort(rand.rand(N))
intervalos = np.diff(bus_arrival_times)
med_intervals = intervalos.mean()
def simulate_wait_times(arrival_times,
                        rseed=8675309,  # Jenny's random seed
                        n_passengers=1200*N):
    rand = np.random.RandomState(rseed)

    arrival_times = np.asarray(arrival_times)
    passenger_times = arrival_times.max() * rand.rand(n_passengers)

    # find the index of the next bus for each simulated passenger
    i = np.searchsorted(arrival_times, passenger_times, side='right')

    return arrival_times[i] - passenger_times
wait_times = simulate_wait_times(bus_arrival_times)
media = wait_times.mean()
desvio = wait_times.std()
print(media)
print(desvio)